package cn.bailin233.system.controller;

import cn.bailin233.system.service.UserService;
import cn.dev33.satoken.exception.NotLoginException;
import cn.dev33.satoken.stp.StpUtil;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

import java.util.List;

/**
 * 用户信息接口
 */
@RestController
@RequestMapping("/userInfo")
public class UserInfoController {
    @Autowired
    UserService userService;

    // 获取用户角色
    @RequestMapping("/getRoleNameList")
    List<String> getRoleNameList(Long uid) {
        try {
            // 网关通过地址(路由)调用（有token）,匹配登录id,拦截非法查询
            uid = StpUtil.getLoginIdAsLong();
            return userService.getRoleNameList(uid);
        } catch (NotLoginException e) {
            // 网关通过feign调用（无token）,未登录直接调用（无token）会在网关处拦截
            return userService.getRoleNameList(uid);
        }
    }

    // 获取用户权限
    @RequestMapping("/getResourceNameList")
    List<String> getResourceNameList(Long uid) {
        try {
            // 网关通过地址(路由)调用（有token）, 通过token查询uid
            uid = StpUtil.getLoginIdAsLong();
            return userService.getResourceNameList(uid);
        } catch (NotLoginException e) {
            // 网关通过feign调用（无token）,未登录直接调用（无token）会在网关处拦截
            return userService.getRoleNameList(uid);
        }
    }

}
